package com.hb.core.pojo.center.au.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hb.core.pojo.parent.MPCommonEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 企业扩展信息
 * </p>
 *
 * @author zhaojk
 * @since 2021-11-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("au_org_ext")
@ApiModel(value="OrgExt对象", description="企业扩展信息")
public class OrgExt extends MPCommonEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "企业ID(关联jnpf机构信息表)")
    private Long orgId;

    @ApiModelProperty(value = "地区(1: 境内, 2: 境外)")
    private Integer district;

    @ApiModelProperty(value = "国家")
    private String country;

    @ApiModelProperty(value = "注册日期/成立日期")
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime regTime;

    @ApiModelProperty(value = "核准日期")
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime  validDate;

    @ApiModelProperty(value = "注册资金/注册资本")
    private String capital;

    @ApiModelProperty(value = "经济类型(关联字典)")
    private Long econType;

    @ApiModelProperty(value = "企业分类")
    private String orgType;

    @ApiModelProperty(value = "注册地址")
    private String addressInfo;

    @ApiModelProperty(value = "注册详细地址")
    private String addressDetail;

    @ApiModelProperty(value = "企业电话")
    private String orgPhone;

    @ApiModelProperty(value = "企业邮编")
    private String postcode;

    @ApiModelProperty(value = "企业邮箱")
    private String orgEmail;

    @ApiModelProperty(value = "联系传真")
    private String fax;

    @ApiModelProperty(value = "通讯地址")
    private String comAddress;

    @ApiModelProperty(value = "登记机关")
    private String regAuthor;

    @ApiModelProperty(value = "社会信用代码证附件")
    private String creditFile;

    @ApiModelProperty(value = "公司章程")
    private String orgRules;

    @ApiModelProperty(value = "行业分类(关联字典)")
    private String industry;

    @ApiModelProperty(value = "经营范围")
    private String manaScope;

    @ApiModelProperty(value = "基本账户开户行")
    private String bankName;

    @ApiModelProperty(value = "基本账户账号")
    private String bankAccount;

    @ApiModelProperty(value = "基本账户开户许可证")
    private String bankLic;

    @ApiModelProperty(value = "联行号")
    private String unionNum;

    @ApiModelProperty(value = "纳税人类型")
    private String taxType;

    @ApiModelProperty(value = "开票抬头")
    private String invoiceHead;

    @ApiModelProperty(value = "纳税人识别号")
    private String taxNum;

    @ApiModelProperty(value = "开票地址")
    private String invoiceAdd;

    @ApiModelProperty(value = "开票电话")
    private String invoiceTel;

    @ApiModelProperty(value = "开票户行")
    private String invoiceBank;

    @ApiModelProperty(value = "开票户行账号")
    private String invoiceBankAccount;

    @ApiModelProperty(value = "纳税人证明")
    private String taxLic;

    @ApiModelProperty(value = "企业介绍附件")
    private String orgIntroduce;

    /**
     * 参数验证方法
     * 所有的继承该类的DTO对象必须在调用时重写该方法
     * 该方法中验证的字段对应数据库中不能为空的字段
     *
     * @return
     */
    @Override
    public String paramsValid(String... fieldNames) {
        return super.paramsValid("orgId");
    }
}
